1. Technical Field
The present invention relates generally to an improved data processing system. In particular, the present invention relates to a method, apparatus, and computer instructions for using the transaction MD4 checksum as primary keys to link transactions across machines.
2. Description of Related Art
Performance monitoring is often used in optimizing the use of software in a system. A performance monitor is generally regarded as a facility incorporated into a processor to assist in analyzing selected characteristics of a system by determining a machine's state at a particular point in time. One method of monitoring system performance is to monitor the system using a transactional-based view. In this manner, the performance monitor may access the end-user experience by tracking the execution path of a transaction to locate where problems occur. Thus, the end user's experience is taken into account in determining if the system is providing the service needed.
Tivoli Monitoring for Transaction Performance™ (hereafter TMTP) is a centrally managed suite of software components that monitor the availability and performance of Web-based services and operating system applications. TMTP captures detailed transaction and application performance data for all electronic business transactions. With TMTP, every step of a customer transaction as it passes through an array of hosts, systems, application, Web and proxy servers, Web application servers, middleware, database management software, and legacy back-office software, may be monitored and performance characteristic data compiled and stored in a data repository for historical analysis and long-term planning. One way in which this data may be compiled in order to test the performance of a system is to simulate customer transactions and collect “what-if” performance data to help assess the health of electronic business components and configurations. TMTP provides prompt and automated notification of performance problems when they are detected.
With TMTP, an electronic business owner may effectively measure how users experience the electronic business under different conditions and at different times. Most importantly, the electronic business owner may isolate the source of performance and availability problems as they occur so that these problems can be corrected before they produce expensive outages and lost revenue.
With TMTP, user transactions may be linked to sub-transactions using a correlator, such as an ARM (Application Response Measurement) correlator. Correlators are passed in user transactions to allow for monitoring the progress of the user transactions through the system. As an initiator of a transaction may invoke a process within an application and this invoked process can in turn invoke another process within the application, correlators are used to “tie” these related transactions together. For example, a parent transaction triggers a child transaction, which in turn may trigger its own child transaction. The result is a tree of transactions with the topmost parent transaction being the root of the tree. Thus, correlators are used to express a correlation between multiple transactions, e.g., a root/parent/child relationship.
The relationship between a particular transaction, its parent transaction, and the root transaction describes a point in the tree topology of a system of occurring transactions. Each transaction is identifiable by its particular ID, or Universal Unique IDentifier (UUID), which is a 128-bit value guaranteed to be unique across all servers and applications. As each of these transaction nodes in the tree topology may occur on the same or different hosts, these transactions are linked through UUIDs. These UUIDs are passed through the correlator to their child transactions.
A problem encountered in existing systems occurs when the transaction information arrives at a corresponding host node. As each host node may upload its transaction information at different times, these data uploads may be extremely large if network outages occur. These uploads have proven to be inefficient and time-consuming since processing time is needed to build the transaction's linkages when the transaction is uploaded to the host.
Therefore, it would be advantageous to have a method, system, and computer product for efficiently populating the transaction database on the server to preserve the root/parent/current transaction relationships by allowing automatic linking of the transaction topology as data is uploaded.